1f23f32b42a82c526d711efc14c22fc96a1b9799,portal-impl/src/com/liferay/portlet/messageboards/service/impl/MBMessageLocalServiceImpl.java,MBMessageLocalServiceImpl,notifySubscribers,#MBCategory#MBMessage#PortletPreferences#ThemeDisplay#boolean#,1335

Before Change



		MBMessageProducer.produce(
			new String[] {
				String.valueOf(message.getCompanyId()),
				String.valueOf(message.getUserId()),
				StringUtil.merge(categoryIds),
				String.valueOf(message.getThreadId()),

After Change


		String subjectPrefix = null;
		String body = null;
		String signature = null;
		boolean htmlFormat = MBUtil.getEmailHtmlFormat(prefs);

		if (update) {
			subjectPrefix = MBUtil.getEmailMessageUpdatedSubjectPrefix(prefs);
			body = MBUtil.getEmailMessageUpdatedBody(prefs);
			signature = MBUtil.getEmailMessageUpdatedSignature(prefs);
		}
		else {
			subjectPrefix = MBUtil.getEmailMessageAddedSubjectPrefix(prefs);
			body = MBUtil.getEmailMessageAddedBody(prefs);
			signature = MBUtil.getEmailMessageAddedSignature(prefs);
		}

		if (Validator.isNotNull(signature)) {
			body +=  "\n--\n" + signature;
		}

		subjectPrefix = StringUtil.replace(
			subjectPrefix,
			new String[] {
				"[$CATEGORY_NAME$]",
				"[$COMPANY_ID$]",
				"[$COMPANY_MX$]",
				"[$COMPANY_NAME$]",
				"[$COMMUNITY_NAME$]",
				"[$FROM_ADDRESS$]",
				"[$FROM_NAME$]",
				"[$MAILING_LIST_ADDRESS$]",
				"[$MESSAGE_BODY$]",
				"[$MESSAGE_ID$]",
				"[$MESSAGE_SUBJECT$]",
				"[$MESSAGE_USER_ADDRESS$]",
				"[$MESSAGE_USER_NAME$]",
				"[$PORTAL_URL$]",
				"[$PORTLET_NAME$]"
			},
			new String[] {
				category.getName(),
				String.valueOf(company.getCompanyId()),
				company.getMx(),
				company.getName(),
				group.getName(),
				fromAddress,
				fromName,
				mailingListAddress,
				message.getBody(),
				String.valueOf(message.getMessageId()),
				message.getSubject(),
				user.getEmailAddress(),
				user.getFullName(),
				company.getVirtualHost(),
				portletName
			});

		body = StringUtil.replace(
			body,
			new String[] {
				"[$CATEGORY_NAME$]",
				"[$COMPANY_ID$]",
				"[$COMPANY_MX$]",
				"[$COMPANY_NAME$]",
				"[$COMMUNITY_NAME$]",
				"[$FROM_ADDRESS$]",
				"[$FROM_NAME$]",
				"[$MAILING_LIST_ADDRESS$]",
				"[$MESSAGE_BODY$]",
				"[$MESSAGE_ID$]",
				"[$MESSAGE_SUBJECT$]",
				"[$MESSAGE_URL$]",
				"[$MESSAGE_USER_ADDRESS$]",
				"[$MESSAGE_USER_NAME$]",
				"[$PORTAL_URL$]",
				"[$PORTLET_NAME$]"
			},
			new String[] {
				category.getName(),
				String.valueOf(company.getCompanyId()),
				company.getMx(),
				company.getName(),
				group.getName(),
				fromAddress,
				fromName,
				mailingListAddress,
				message.getBody(),
				String.valueOf(message.getMessageId()),
				message.getSubject(),
				messageURL,
				user.getEmailAddress(),
				user.getFullName(),
				company.getVirtualHost(),
				portletName
			});

		String subject = message.getSubject();

		if (subject.indexOf(subjectPrefix) == -1) {
			subject = subjectPrefix.trim() + " " + subject.trim();
		}

		String inReplyTo = null;

		if (message.getParentMessageId() !=
				MBMessageImpl.DEFAULT_PARENT_MESSAGE_ID) {

			inReplyTo = MBUtil.getMailId(
				company.getMx(), message.getCategoryId(),
				message.getParentMessageId());
		}

		JSONObject jsonObj = JSONFactoryUtil.createJSONObject();

		jsonObj.put("companyId", message.getCompanyId());
		jsonObj.put("userId", message.getUserId());
		jsonObj.put("categoryIds", StringUtil.merge(categoryIds));
		jsonObj.put("threadId", message.getThreadId());
		jsonObj.put("fromName", fromName);
		jsonObj.put("fromAddress", fromAddress);
		jsonObj.put("subject", subject);
		jsonObj.put("body", body);
		jsonObj.put("replyToAddress", replyToAddress);
		jsonObj.put("mailId", mailId);
		jsonObj.put("inReplyTo", inReplyTo);
		jsonObj.put("htmlFormat", htmlFormat);

		MessageBusUtil.sendMessage(
			DestinationNames.MESSAGE_BOARDS_MESSAGE, jsonObj.toString());